package com.fate.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fate.system.dto.role.RolePageDTO;
import com.fate.system.entity.Role;
import java.util.List;
import java.util.Map;

/**
 * @author 47349
 * @description 针对表【sys_role(角色表)】的数据库操作Service
 * @createDate 2024-08-09 02:02:42
 */
public interface IRoleService extends IService<Role> {

  /**
   * 分页获取列表
   *
   * @param pageDTO 分页DTO
   * @return 分页
   */
  Page<Role> getPageList(RolePageDTO pageDTO);

  /**
   * 获取通过角色ids角色标识
   *
   * @param roleIds 角色ids
   * @return 角色标识列表
   */
  List<String> getRoleSignsByIds(List<String> roleIds);

  /**
   * 通过角色id获取角色标识
   *
   * @param sign 角色标识
   * @return 角色id
   */
  String getRoleIdBySign(String sign);

  /**
   * 通过角色id获取角色名称
   *
   * @param roleIds 角色id
   * @return 角色名称
   */
  List<String> getRoleNameByIds(List<String> roleIds);

  /**
   * 通过角色IdList来约束查询，返回角色Id->角色名的映射
   *
   * @param roleIds 角色id列表
   * @return 角色Id->角色名
   */
  Map<String, String> roleId2RoleNameMap(List<String> roleIds);

  /**
   * 删除角色
   *
   * @param id 角色ID
   */
  void removeRole(String id);
}
